"""
功能描述：拿到测试数据，根据接口请求方式判断进行请求，断言请求结果
导包
调用radeexcel数据
取出测试数据一条数据进行请求
准备接口请求参数
根据接口请求方式进行判断
断言接口返回结果
实际结果
预期结果
对比
讲实际结果个人测试用例写入excel
"""
# 导包
import unittest
from ddt import ddt,data,unpack
from 高级版接口第二周.common.confighttp import confighttp
from 高级版接口第二周.common.withexcel import withexcel
from 高级版接口第二周.common.log import loger
from 高级版接口第二周.common.readexcel import readexcel

# 调用读取类
re =readexcel()
# 调用读取excel方法
testdata=re.run()
# 调用写入类
we=withexcel()

# 创建类
@ddt
class testcase(unittest.TestCase):
    # 定义一个测试用例， 取出测试数据一条数据进行请求
    @data
    @unpack
    def test_run(self,id, interfaceUrl, name, method, value, header, rely, caseid, expect, real, status):
        # 日志返回格式加字段 # 准备接口请求参数
        loger.debug('%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s' %( id, interfaceUrl, name, method, value, header, rely, caseid, expect, real, status))
        # 调用接口类型
        ch =confighttp(interfaceUrl,method,value)
        # 调用方法，  # 判断预期和实际相等，# 根据接口请求方式进行判断
        re =ch.run3()
        # 日志返回结果
        loger.info(f'当前用例返回结果为{re.text}')
        # 获取错误字段返回
        real=re.json('errorCode')
        if int(real)==int(expect):
            status='success'
        else:
            status='fail'
        #  调用写入方法
        we.run1(int(id),real,status)
        # 断言预期和实际# 断言接口返回结果
        self.assertEqual(real,int(expect),'预期与实际不符，用例执行失败，请检查')

if __name__ == '__main__':
    unittest.main(verbosity=2)






